Java Collections Framework কি?

Java Technologies - জাভা ইন্টারভিউ প্রশ্ন (Java Interview Questions) Java Collections Framework সম্পর্কিত প্রশ্নাবলী |
123
123

Java Collections Framework হল Java-র একটি শক্তিশালী লাইব্রেরি যা ডেটা স্ট্রাকচার এবং অ্যালগোরিদম সরবরাহ করে। এটি Java তে ডেটা স্টোর, ম্যানিপুলেশন এবং পরিচালনার জন্য ব্যবহৃত হয়। Java Collections Framework বিভিন্ন ধরনের ডেটা স্ট্রাকচার (যেমন লিস্ট, সেট, কিউ, ম্যাপ) এবং তাদের কার্যকারিতা (যেমন ইনসার্ট, রিমুভ, সোর্টিং, সার্চিং) সমর্থন করে।

Java Collections Framework (JCF) এর মূল উপাদান:

  1. Collections Interface:
    Collections Framework এর মূল ইন্টারফেস। এটি বিভিন্ন ডেটা স্ট্রাকচার এর সাধারণ কার্যকারিতা সংজ্ঞায়িত করে (যেমন যোগ করা, মুছে ফেলা, অনুসন্ধান করা)।
  2. List Interface:
    এটি একটি Ordered Collection যা ডুপ্লিকেট উপাদান ধারণ করতে পারে। যেমন: ArrayList, LinkedList, Vector
  3. Set Interface:
    এটি একটি Unordered Collection যা ডুপ্লিকেট উপাদান ধারণ করতে পারে না। যেমন: HashSet, LinkedHashSet, TreeSet
  4. Queue Interface:
    এটি একটি First-In-First-Out (FIFO) ডেটা স্ট্রাকচার, যা সাধারণত এলিমেন্ট যুক্ত করা এবং অপসারণের জন্য ব্যবহৃত হয়। যেমন: PriorityQueue, LinkedList (যা Queue হিসাবে ব্যবহৃত হতে পারে), ArrayDeque
  5. Map Interface:
    এটি Key-Value Pair সংগ্রহ করার জন্য ব্যবহৃত হয়। এখানে প্রতিটি Key এর জন্য একটি Value থাকে। যেমন: HashMap, TreeMap, LinkedHashMap, Hashtable

Java Collections Framework-এর মূল উপাদানগুলি:

  1. Collection Interface:
    • List (Ordered, Duplicates allowed)
    • Set (Unordered, No duplicates)
    • Queue (FIFO)
  2. Map Interface (Key-Value Pair):
    • HashMap: Unordered, দ্রুত অনুসন্ধান (constant time complexity O(1) average case)।
    • LinkedHashMap: Ordered, ইনসারশন অর্ডারে ডেটা স্টোর করে।
    • TreeMap: Sorted, কীগুলির উপর natural ordering বা Comparator অনুযায়ী সাজানো থাকে।
    • Hashtable: পুরোনো, synchronized, খুব কম ব্যবহৃত এখনকার সময়।

JCF এর ক্লাস এবং ইন্টারফেসের মধ্যে পার্থক্য:

  • Interfaces: এগুলি সঠিক ডেটা স্ট্রাকচারের বৈশিষ্ট্য সংজ্ঞায়িত করে, কিন্তু ইমপ্লিমেন্টেশন সরবরাহ করে না। উদাহরণ: Collection, List, Set, Map, Queue ইত্যাদি।
  • Classes: এগুলি ইন্টারফেসগুলির ইমপ্লিমেন্টেশন প্রদান করে। উদাহরণ: ArrayList, HashSet, HashMap, LinkedList, PriorityQueue ইত্যাদি।

Java Collections Framework এর গুরুত্বপূর্ণ ক্লাসসমূহ:

  1. ArrayList:
    • List এর একটি ক্লাস যা ডাইনামিকভাবে আকার পরিবর্তন করতে পারে এবং এলিমেন্টগুলি সোজাসুজি একের পর এক সংরক্ষণ করে।
    • দ্রুত random access এবং ধীরে ধীরে এলিমেন্ট যোগ করা (O(1))।
  2. LinkedList:
    • এটি একটি doubly linked list এর উপর ভিত্তি করে কাজ করে। এতে ইনসারশন এবং ডিলিশন কার্যকারিতা দ্রুত (O(1)) হলেও, এলিমেন্ট অ্যাক্সেস কিছুটা ধীর।
  3. HashSet:
    • Set ইন্টারফেসের একটি ক্লাস যা কোনো ডুপ্লিকেট উপাদান ধারণ করে না। এটি দ্রুত অনুসন্ধান সরবরাহ করে কারণ এটি hashing ব্যবহার করে।
  4. TreeSet:
    • এটি Set ইন্টারফেসের একটি ক্লাস যা sorted উপাদান ধারণ করে। এটি কীগুলিকে natural ordering বা Comparator অনুযায়ী সাজায়।
  5. HashMap:
    • এটি Map ইন্টারফেসের একটি ক্লাস যা কীগুলির উপর নির্ভর করে মান সংরক্ষণ করে। এটি দ্রুত অনুসন্ধান (O(1)) এবং null ভ্যালু সমর্থন করে।
  6. PriorityQueue:
    • Queue ইন্টারফেসের একটি ক্লাস যা priority-based এলিমেন্ট সংরক্ষণ করে। প্রথমে সর্বোচ্চ বা সর্বনিম্ন প্রাধিকারযুক্ত এলিমেন্ট অ্যাক্সেস করা হয় (এটি heap ব্যবহার করে)।
  7. Vector:
    • এটি List ইন্টারফেসের একটি পুরনো ক্লাস, যা ডাইনামিকভাবে আকার পরিবর্তন করতে পারে, তবে এখন এটি কম ব্যবহৃত হয়। সাধারণত ArrayList ব্যবহার করা হয়।

Java Collections Framework এর সুবিধা:

  1. সাধারণ কার্যকারিতা:
    Java Collections Framework একই ধরনের কার্যকারিতা সংজ্ঞায়িত করে, যেমন add(), remove(), contains(), size(), clear() ইত্যাদি, যা সহজেই বিভিন্ন ডেটা স্ট্রাকচার নিয়ে কাজ করতে সাহায্য করে।
  2. অ্যাবস্ট্রাকশন এবং ইন্টারফেস:
    এটি ডেটা স্ট্রাকচারের জন্য abstraction সরবরাহ করে এবং ইন্টারফেস ব্যবহার করে implementation কে লুকিয়ে রাখে, যার ফলে প্রোগ্রামাররা সঠিক ডেটা স্ট্রাকচার নির্বাচন করতে পারে।
  3. ডাইনামিক আকার পরিবর্তন:
    অনেক ক্লাস (যেমন ArrayList এবং LinkedList) ডাইনামিক আকার পরিবর্তন করতে সক্ষম, যাতে সহজেই ডেটা ম্যানিপুলেট করা যায়।
  4. নিরাপত্তা এবং সিঙ্ক্রোনাইজেশন:
    কিছু ক্লাস (যেমন Hashtable, Vector) সিঙ্ক্রোনাইজড এবং থ্রেড সেফ। তবে, নতুন প্রোগ্রামগুলির জন্য HashMap এবং ArrayList ব্যবহৃত হয়, যা পারফরম্যান্সের দিক থেকে ভাল।

Java Collections Framework এর কিছু সাধারণ বৈশিষ্ট্য:

  • Iterable Interface: এটি Collection ইন্টারফেসের অভিভাবক, যা Iterator প্রাপ্তির সুযোগ দেয়।
  • Generics: Java Collections Framework generics ব্যবহার করে, যা টাইপ সেফটি নিশ্চিত করে।
  • Sorting and Searching: Java Collections Framework-এ বিভিন্ন অ্যালগোরিদম রয়েছে যা ডেটাকে সজ্জিত করতে এবং খুঁজে পেতে সহায়তা করে (যেমন Collections.sort(), Collections.binarySearch() ইত্যাদি)।
  • Thread-safety: যদি থ্রেড সেফ ডেটা স্ট্রাকচার প্রয়োজন হয়, তাহলে synchronized ব্যবহার করা যায় অথবা Concurrent Collections (যেমন CopyOnWriteArrayList) ব্যবহার করা যেতে পারে।

Java Collections Framework (JCF) Java-তে ডেটা স্টোর, ম্যানিপুলেশন এবং পরিচালনার জন্য একটি শক্তিশালী লাইব্রেরি। এটি বিভিন্ন ডেটা স্ট্রাকচার (যেমন List, Set, Queue, Map) এবং কার্যকারিতা সরবরাহ করে যা ডেভেলপারদের ডেটা ম্যানিপুলেশনে সহজতা এবং কার্যকারিতা প্রদান করে। JCF-এর অন্তর্গত ক্লাস এবং ইন্টারফেসগুলি ডেটার স্টোরেজ এবং কার্যকরী কৌশল তৈরি করার জন্য Java প্রোগ্রামিংয়ের জন্য অপরিহার্য।

Content added By
Promotion